package ltd.bugs.cute.common.util;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 流水号生成器
 * 
 * @author zhengzhq
 *
 */
public class SerialNoGenerator {

  private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");

  /**
   * 采用SN+14位时间格式+8位随机数生成流水号
   * 
   * @return
   */
  public synchronized static String getSerialNo() {
    return getRandomNo("SN");
  }

  /**
   * 采用前缀+14位时间格式+8位随机数生成流水号
   * 
   * @return
   */
  public synchronized static String getRandomNo(String prefix) {
    StringBuilder serialNoBuilder = new StringBuilder(prefix);
    serialNoBuilder.append(dateFormat.format(new Date()));
    // 生成8位随机数
    for (int i = 0; i < 8; i++) {
      serialNoBuilder.append((int) (Math.random() * 10));
    }

    return serialNoBuilder.toString();
  }
}
